package com.caifu.service;

import com.caifu.bean.Result;
import com.caifu.pojo.COrgDept;
import com.caifu.pojo.SysUser;
import com.caifu.vo.DeptDevo;
import com.caifu.vo.UserDeptVo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * ClassName: DeptController.java
 *
 * @author: tianwenwen
 * createTime: 2020年12月14日 11:33:44
 **/
public interface DeptService {

    /**
     * 获取当前用户下的部门列表
     *
     * @param searchParam
     * @param currentPage
     * @param pageSize
     * @return
     */
    PageInfo<UserDeptVo> getDeptList(String searchParam, Integer currentPage, Integer pageSize, SysUser user);

    /**
     * 修改、添加部门
     *
     * @param cOrgDept
     * @param user
     * @return
     */
    Result addOrUpdate(COrgDept cOrgDept, SysUser user);

    /**
     * 根据id获取部门详情
     *
     * @param id
     * @return
     */
    COrgDept getDeptById(String id);

    /**
     * 根据id删除部门
     *
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 部门重置密码
     *
     * @param id
     * @return
     */
    Result resetPwd(Integer id);

    /**
     * 获取部门管理员账号
     *
     * @param id
     * @return
     */
    String getDeptUserId(String id);

    /**
     * 根据user获取dept
     *
     * @param user
     * @return
     */
    List<COrgDept> getDeptByUser(SysUser user);

    /**
     * 获取部门设备
     *
     * @param user
     * @return
     */
    Map<String, Object> getDeptDevTree(SysUser user);

    /**
     * 根据部门id获取部门设备
     *
     * @param user
     * @return
     */
    Map<String, Object> getDevByDeptNo(SysUser user, Integer deptNo);
}
